import { mapGetters } from "vuex"

/**
 * 用于给购物车添加数字徽标
 * 由于uni.setTabBarBadge限制，只能在tabbar页面调用才能生效
 */
export default {
  computed: {
    ...mapGetters('m_cart', ['cartListTotal'])
  },
  onShow() {
    this.updateTabBarBadge(2, this.cartListTotal + '')
  },
  watch: {
    cartListTotal() {
      // 更新tabbar徽标
      this.updateTabBarBadge(2, this.cartListTotal + '')
    }
  },
  methods: {
    /**
     * 更新tabbar的徽标
     * @param {Number} index tabbar索引
     * @param {String} text 徽标内容
     */
    updateTabBarBadge(index, text) {
      // 如果text未填或text为0，移除徽标(适配app端为0时显示0的问题)
      if (!text || !+text)
        return uni.removeTabBarBadge({ index })
      uni.setTabBarBadge({ index, text })
    }
  }
}
